Conversation
Bumps the npm_and_yarn group with 2 updates in the / directory: [uuid](https://github.com/uuidjs/uuid) and [postcss](https://github.com/postcss/postcss). Updates `uuid` from 11.1.0 to 14.0.0 - [Release notes](https://github.com/uuidjs/uuid/releases) - [Changelog](https://github.com/uuidjs/uuid/blob/main/CHANGELOG.md) - [Commits](uuidjs/uuid@v11.1.0...v14.0.0) Updates `postcss` from 8.5.6 to 8.5.12 - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](postcss/postcss@8.5.6...8.5.12) --- updated-dependencies: - dependency-name: uuid dependency-version: 14.0.0 dependency-type: direct:production dependency-group: npm_and_yarn - dependency-name: postcss dependency-version: 8.5.12 dependency-type: indirect dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Copilot <copilot@github.com>
… in Shell component
…fy rendering logic
…ally render children based on route match
Speed up study first load by deferring non-critical storage reads
…e unused parameter
Refine startup error handling to avoid false storage disconnect warnings
Fix UI break when user rejects mic permission
…/npm_and_yarn-7aa7e12bf9 Bump the npm_and_yarn group across 1 directory with 2 updates
…rove navigation assertions
Fix replay bug
|
🪓 PR closed, deleted preview. |
- Remove unnecessary useMemo calls for trivial config value reads in NextButton (nextButtonDisableTime, nextButtonEnableTime, nextOnEnter, previousButtonText) - Remove unnecessary useMemo for modes.dataCollectionEnabled destructuring in useNextStep - Fix consistent-return lint error by unconditionally returning cleanup function in nextOnEnter useEffect - Fix prefer-destructuring lint warning in useNextStep
- Use correct tab name 'Tests' instead of 'Test Studies' - Activate the Tests tab before opening the study - Handle custom studyEndMsg instead of relying on default message - Simplify study card locator to avoid strict mode violation
…ions-component Add component-level auto-advance timeout controls and warning configuration
* moving provenance * ensuring fallback works * Persist provenance as separate assets * Add provenance bulk download export * Ignore coverage output * Fix type error in test --------- Co-authored-by: Jack Wilburn <jackwilburn@tutanota.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates ReVISit to v2.4.3, focusing on (1) component-level auto-advance timeouts, (2) storing Trrack provenance graphs as separate per-task assets (instead of inline on StoredAnswer), and (3) improving recording permission/error UX plus some storage-engine initialization/resume robustness.
Changes:
- Add component-level auto-advance timeout + warning message support (schema/types, UI, tests, and a demo test study).
- Move provenance persistence to a dedicated storage namespace (
provenance/) with download support and analysis/replay compatibility with legacy inline provenance. - Improve recording UX/error states and refine storage engine behaviors (config write short-circuit, participant metadata update, deferred initial persistence, etc.), with expanded unit/e2e tests.
Reviewed changes
Copilot reviewed 53 out of 55 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| yarn.lock | Locks updated deps (jsdom, postcss, uuid, etc.). |
| tests/test-component-timeout.spec.ts | Playwright test covering auto-advance warning + navigation. |
| tests/replay-current-trial-dynamic.spec.ts | Updates replay routing expectations (pathname-driven). |
| src/utils/useDisableBrowserBack.tsx | Disables back-button only outside analysis; adds cleanup. |
| src/utils/useDisableBrowserBack.spec.tsx | Unit test for analysis replay exemption. |
| src/utils/handleDownloadFiles.ts | Adds provenance ZIP download flow (and legacy fallback). |
| src/utils/handleDownloadFiles.provenance.spec.ts | Tests provenance ZIP generation and filenames. |
| src/store/types.ts | Introduces StoredProvenance, AlertModalState; removes inline provenance on StoredAnswer. |
| src/store/store.tsx | Updates store creator/types; adds setMetadata; adjusts alert modal typing. |
| src/store/provenance.ts | New helpers to normalize/strip/split legacy inline provenance. |
| src/store/provenance.spec.ts | Tests legacy provenance stripping/normalization behaviors. |
| src/store/hooks/useRecording.ts | Adds audioRecordingError, better permission handling/status reporting. |
| src/store/hooks/usePreviousStep.ts | Improves back-navigation through dynamic blocks; analysis-safe behavior. |
| src/store/hooks/usePreviousStep.spec.tsx | Tests analysis replay navigation + dynamic block skipping behavior. |
| src/store/hooks/useNextStep.ts | Saves provenance separately; excludes timed-out answers from skip logic. |
| src/store/hooks/useNextStep.spec.tsx | Adds tests for query param preservation + timed-out skip behavior + provenance saving. |
| src/store/hooks/useAuth.tsx | Allows study routes to render while auth status is determining (non-analysis). |
| src/storage/types.ts | Updates docs to reflect separate provenance storage. |
| src/storage/tests/highLevel.spec.ts | Adds tests for config write short-circuit, peek participant ID, deferred writes, metadata updates, provenance asset behavior, etc. |
| src/storage/engines/utils/participantDataRecovery.spec.ts | Updates fixtures after removing inline provenance from StoredAnswer. |
| src/storage/engines/types.ts | Adds provenance asset APIs + modes/stage bootstrap; config write short-circuit; deferred initial persistence; metadata updates. |
| src/storage/engines/FirebaseStorageEngine.ts | Uses getBlob for storage object fetch instead of fetch-by-URL. |
| src/routes/utils.tsx | Removes currentTrial query-driven routing; adds useCurrentIdentifier for timer reset. |
| src/public/libraries/screen-recording/assets/ScreenRecording.tsx | Adjusts permission page to reflect audio/screen recording flags and waveform conditions. |
| src/public/libraries/mic-check/assets/AudioTest.tsx | Improves mic permission instructions and layout; ensures recordAudio: true. |
| src/parser/types.ts | Adds auto-advance timeout/warning fields to component types. |
| src/parser/StudyConfigSchema.json | Adds schema fields for auto-advance timeout/warning. |
| src/parser/parser.spec.ts | Tests schema acceptance of new auto-advance fields. |
| src/parser/LibraryConfigSchema.json | Adds schema fields for auto-advance timeout/warning (library configs). |
| src/GlobalConfigParser.tsx | Refactors home route; adds cancellation guards for async config loading. |
| src/components/Shell.tsx | Improves startup flow, metadata updates, deferred completion check, and initial alert behavior. |
| src/components/nextButtonTimeout.ts | New helper for computing/formatting auto-advance warnings. |
| src/components/nextButtonTimeout.spec.ts | Unit tests for warning timing and formatting. |
| src/components/NextButton.tsx | Implements auto-advance + warning UI; resets timers per identifier. |
| src/components/NextButton.spec.tsx | Tests auto-advance reset when identifier changes. |
| src/components/interface/RecordingAudioWaveform.tsx | Removes inline error UI; relies on higher-level error display. |
| src/components/interface/AppHeader.tsx | Adds richer recording status UI (pending/denied/recording, screen/audio labels). |
| src/components/interface/AppHeader.spec.tsx | Tests header status rendering for mic/screen permission states. |
| src/components/downloader/DownloadButtons.tsx | Adds provenance ZIP download button + loading state. |
| src/components/audioAnalysis/TaskProvenanceTimeline.tsx | Switches timeline input to StoredProvenance (asset-based). |
| src/components/audioAnalysis/AudioProvenanceVis.tsx | Fetches provenance assets with legacy fallback; removes currentTrial param manipulation. |
| src/analysis/individualStudy/thinkAloud/ThinkAloudFooter.tsx | Loads per-task provenance assets; refactors task navigation. |
| src/analysis/individualStudy/thinkAloud/ThinkAloudFooter.spec.ts | Tests task navigation target creation (replay vs analysis tagging). |
| src/analysis/individualStudy/thinkAloud/ThinkAloudAnalysis.tsx | Stops clearing currentTrial on participant selection. |
| src/analysis/individualStudy/thinkAloud/taskNavigation.ts | New helper to build replay/tagging navigation targets. |
| src/analysis/individualStudy/summary/utils.test.ts | Updates fixtures after removing inline provenance from StoredAnswer. |
| src/analysis/individualStudy/replay/SingleTask.tsx | Adds screen-recording icon support in replay list. |
| src/analysis/individualStudy/replay/AllTasksTimeline.tsx | Wires hasScreenRecording into replay task items. |
| public/test-component-timeout/config.json | Adds a test study config demonstrating auto-advance + warning. |
| public/libraries/screen-recording/config.json | Updates library component flags (recordScreen) and formatting. |
| public/libraries/mic-check/config.json | Ensures mic-check library requests audio recording. |
| public/libraries/calvi/config.json | Fixes a library component description. |
| public/global.json | Registers the new component-timeout test study. |
| package.json | Bumps uuid and adds jsdom for vitest jsdom environment. |
| .gitignore | Ignores coverage/. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.